package com.jinzhi.common.utils.wx;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.jinzhi.common.wxconsts.LinkConfiggure;
import com.jinzhi.common.vo.TemplateDataVo;
import lombok.extern.slf4j.Slf4j;

import java.util.Map;


@Slf4j
public class WX_TemplateMsgUtil {

	/**
	 * 封装模板详细信息
	 * @return
	 */
	public static JSONObject packJsonmsg(Map<String, TemplateDataVo> param) {
		JSONObject json = new JSONObject();
		for (Map.Entry<String, TemplateDataVo> entry : param.entrySet()) {
			JSONObject keyJson = new JSONObject();
			TemplateDataVo dta=  entry.getValue();
			keyJson.put("value",dta.getValue());
			keyJson.put("color", LinkConfiggure.WX_TEMPLATE_COLOR);
			json.put(entry.getKey(), keyJson);
		}
		return json;
	}

	/**
	 * 根据模板的编号 新增并获取模板ID
	 * @param templateSerialNumber 模板库中模板的 "编号"
	 * @return 模板ID
	 */
//	public static String getWXTemplateMsgId(String templateSerialNumber){
//		String tmpurl = "https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token="+ WX_TokenUtil.getWXToken().getAccessToken();
//		JSONObject json = new JSONObject();
//		json.put("template_id_short", templateSerialNumber);
//		JSONObject result = WX_HttpsUtil.httpsRequest(tmpurl, "POST", json.toString());
//		JSONObject resultJson = new JSONObject(result);
//		String errmsg = (String) resultJson.get("errmsg");
//		log.info("获取模板编号返回信息：" + errmsg);
//		if(!"ok".equals(errmsg)){
//			return "error";
//		}
//		String templateId = (String) resultJson.get("template_id");
//		return templateId;
//	}

	/**
	 * 根据模板ID 删除模板消息
	 * @param templateId 模板ID
	 * @return
	 */
//	public static String deleteWXTemplateMsgById(String templateId){
//		String tmpurl = "https://api.weixin.qq.com/cgi-bin/template/del_private_template?access_token="+ WX_TokenUtil.getWXToken().getAccessToken();
//		JSONObject json = new JSONObject();
//		json.put("template_id", templateId);
//		try{
//			JSONObject result = WX_HttpsUtil.httpsRequest(tmpurl, "POST", json.toString());
//			JSONObject resultJson = new JSONObject(result);
//			log.info("删除"+templateId+"模板消息,返回CODE："+ resultJson.get("errcode"));
//			String errmsg = (String) resultJson.get("errmsg");
//			if(!"ok".equals(errmsg)){
//				return "error";
//			}
//		}catch(Exception e){
//			e.printStackTrace();
//		}
//		return "success";
//	}


	/**
	 * 发送微信消息(模板消息)
	 * @param touser 用户 OpenID
	 * @param templatId 模板消息ID
	 * @param data 详细内容
	 * @return
	 */
	public static String sendWechatMsgToUser(String form_id,String tmpurl , String touser, String templatId, JSONObject data
	) {
		JSONObject json = new JSONObject();
		json.put("touser", touser);
		json.put("template_id", templatId);
		json.put("form_id", form_id);
		json.put("data", data);
		try{
			JSONObject result = WX_HttpsUtil.httpsRequest(tmpurl, "POST", json.toString());
			return JSON.toJSONString(result);
		}catch(Exception e){
			e.printStackTrace();
			return "error";
		}finally {

		}
	}
}